技術分享
🤖使用GitHub Action全自動更新倉庫
00 min
2024-6-14
2024-6-15
type
status
date
slug
password
summary
tags
category
icon

建立您的第一個工作流

GitHub.com 上的儲存庫中,在 .github/workflows 目錄中建立一個名為 github-actions-demo.yml 的工作流程檔案。去做這個:
如果 .github/workflows 目錄已存在,請導航至 GitHub 上的該目錄,按一下新增文件,然後按一下建立新文件,並將文件命名為 github-actions-demo.yml。
如果您的儲存庫沒有 .github/workflows 目錄,請前往 GitHub 上儲存庫的主頁,按一下新增文件,然後按一下建立新文件,並將文件命名為 .github/workflows/github-actions-demo。 yml。這一步驟即可建立 .github 和工作流程目錄以及 github-actions-demo.yml 檔案。
  1. 為了讓 GitHub 發現儲存庫中的任何 GitHub Actions 工作流程,您必須將工作流程檔案儲存在名為 .github/workflows 的目錄中。
  1. 您可以為工作流程檔案指定任何名稱,但必須使用 .yml 或 .yaml 作為檔案副檔名。 YAML 是一種常用於設定檔的標記語言。

簡單的HELLO WORLD!

  1. name: Hello World: 這是工作流程的名稱。
  1. on: [push]: 這定義了觸發此工作流程的事件是在 repository 上 push 任何變更。
  1. jobs:: 這是工作流程的主要部分,定義了一個名為 hello-world 的 job。
  1. runs-on: ubuntu-latest: 這指定了此 job 將在最新版的 Ubuntu 虛擬機上運行。
  1. steps:: 這是 job 中將要執行的一系列步驟。
  1. name: Output Hello World: 這是一個步驟,會輸出文字 "Hello, World!"。使用 run: echo "Hello, World!" 來實現這一點。

將以下 YAML 內容複製到 github-actions-demo.yml 檔案中:

  1. name: GitHub Actions Demo: 這是這個工作流程的名稱,可以讓你在 GitHub Actions 的網頁介面中輕鬆識別。
  1. run-name: ${{ github.actor }} is testing out GitHub Actions 🚀: 這是工作流程的運行名稱,會顯示在 GitHub Actions 的介面上。${{ github.actor }} 是一個上下文變數,會插入觸發此工作流程的使用者名稱。
  1. on: [push]: 這定義了觸發此工作流程的事件,在本例中是在 repository 上 push 任何變更。
  1. jobs:: 這是工作流程的主要部分,定義了一個名為 Explore-GitHub-Actions 的 job。
  1. runs-on: ubuntu-latest: 這指定了此 job 將在最新版的 Ubuntu 虛擬機上運行。
  1. steps:: 這是 job 中將要執行的一系列步驟。
  1. run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event.": 這是第一個步驟,會輸出一行文字,其中 ${{ github.event_name }} 是另一個上下文變數,會插入觸發此工作流程的事件名稱。
  1. name: Check out repository code: 這是一個使用 actions/checkout@v4 動作的步驟,會將存儲庫的程式碼 clone 到運行器的工作目錄。
  1. name: List files in the repository: 這是另一個步驟,會列出工作目錄中的檔案。
  1. run: echo "🍏 This job's status is ${{ job.status }}.": 這是最後一個步驟,會輸出此 job 的狀態。
在此階段,您不需要了解此工作流程的詳細資訊。目前,您只需將內容複製並貼上到文件中即可。完成本快速入門指南後,您可以在 "About workflows"中了解工作流程文件的語法,以及 GitHub Actions 上下文的說明,例如 ${{ github.actor }} 和 ${{ github.event_name }} 可以閱讀 "Contexts."

cron schedule 定時觸發

寫入cron時間格式在ymal檔中,可以用下面的網站快速生成
  1. 分鐘 (0-59)
      • 可以是一個數字 (0-59)
      • 可以是一個範圍 (0-10)
      • 可以是一個列表 (0,15,30,45)
      • 可以使用 /n 來表示每 n 分鐘
  1. 小時 (0-23)
      • 可以是一個數字 (0-23)
      • 可以是一個範圍 (9-17)
      • 可以是一個列表 (9,12,18)
      • 可以使用 /n 來表示每 n 小時
  1. 日期 (1-31)
      • 可以是一個數字 (1-31)
      • 可以是一個範圍 (1-15)
      • 可以是一個列表 (1,10,15)
      • 可以使用 /n 來表示每 n 天
  1. 月份 (1-12 或 Jan-Dec)
      • 可以是一個數字 (1-12)
      • 可以是一個月份縮寫 (Jan-Dec)
      • 可以是一個列表 (Jan,Mar,Dec)
  1. 星期幾 (0-6 或 Sun-Sat)
      • 可以是一個數字 (0-6,0 代表星期日)
      • 可以是一個星期縮寫 (Sun-Sat)
      • 可以是一個列表 (Mon,Wed,Fri)

實際應用

之前在更新LeetCode表單內容的時候,一直需要手動填寫leetcode編號和名字,非常煩人。
所以這裡使用了一個Action來啟動py檔案,再由py檔寫入倉庫中更新
notion image
上一篇
使用FFmpeg轉換多媒體文件
下一篇
渲染相關方程、HLSL程式筆記

Comments
Loading...